package com.cy.pj.sys.dao;

import com.cy.pj.sys.pojo.SysNotice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**一张表对应一个接口
 * 数据层接口
 * @Mapper注解有mybatis框架定义,用于描述数据持久层接口
 *
 * 用于告诉 Spring 框架此接口的实现由 mybatis 创建，为这个接口创建一个实现类,并将其
 * 实现类对象存储到 spring 容器。
 *
 *
 *
 */
@Mapper
public interface SysNoticeDao {
    /**将内存中的SysNotice 对象，持久化到数据库*/
    int insertNotice(SysNotice notice);


    /**
     *
     * @param id
     * @return
     * 一些简单的sql语句可以直接在接口的上方通过注解的方式写sql语句,不需要再.xml文件中配置
     */
    @Select("select *from sys_notice where id=#{id}")
    SysNotice selectById(Long id);
//    SysNotice selectById(@Param("id") Integer id);老版本的写法


    int updateNotice(SysNotice notice);


    /**
     * 建造模式,工厂模式,,模板方法模式
     * 基于多个id执行纪录  删除操作
     *
     * @param id
     * @return
     */
    int deleteById(/*@Param("id") */Long... id);//可变参数,底层其实就是一个数组

    /**
     * 基于条件查询通知信息
     * @param notice
     * @return返回到查询到的通知信息
     */
    List<SysNotice> selectNotice(SysNotice notice);

}
